Skip to content

Conversation

@pbezglasny
Copy link
Contributor

Motivation and Context

Implement SEP-1036 URL Mode Elicitation. Issue #513

Changes:

  • Change CreateElicitationRequestParam struct to enum with two options: FormElicitationParam and UrlElicitationParam
  • Added elicit_url and elicit_url_with_timeout methods to Peer
  • Added notification for notifications/elicitation/complete

How Has This Been Tested?

Breaking Changes

Next signatures of struct/functions changed:

  • CreateElicitationRequestParam now enum with option of form or url
  • changed supported_elicitation to supported_elicitation_modes with different return type in Peer

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

@github-actions github-actions bot added T-dependencies Dependencies related changes T-test Testing related changes T-config Configuration file changes T-core Core library changes T-examples Example code changes T-handler Handler implementation changes T-model Model/data structure changes T-service Service layer changes labels Jan 2, 2026
apexlnc added a commit to apexlnc/agentgateway that referenced this pull request Jan 29, 2026
- Add support for "Human-in-the-loop" parameter filling (SEP-1330) and
  handroll URL-mode support (SEP-1036) locally while awaiting
  upstream inclusion in modelcontextprotocol/rust-sdk#605.
- Implement full lifecycle management for background tasks (SEP-1686),
  allowing tools to enqueue long-running work and poll for results
  across multiplexed upstreams.
- Implement a "Soft Error" parser for code -32042 (URL Required) to
  relay interactive requirements as JSON-RPC data instead of
  transport failures, preserving stateful sessions.
- Refactor session setup to automatically negotiate and mirror
  protocol capabilities between downstream clients and upstream servers.
- Upgrade rmcp to 0.14.0, adopt decoupled structures (SEP-1319), and
  pin git rev ac4146e to resolve an enum variant shadowing issue
  (see modelcontextprotocol/rust-sdk#634).
- Enhance multiplexing logic to preserve and nest upstream _meta fields
  for end-to-end tracing and observability compliance.
- Replace legacy-rmcp (0.10.0) with modern 0.14.0 resumable-polling
  SSE implementations.
apexlnc added a commit to apexlnc/agentgateway that referenced this pull request Jan 29, 2026
- Add support for "Human-in-the-loop" parameter filling (SEP-1330) and
  handroll URL-mode support (SEP-1036) locally while awaiting
  upstream inclusion in modelcontextprotocol/rust-sdk#605.
- Implement full lifecycle management for background tasks (SEP-1686),
  allowing tools to enqueue long-running work and poll for results
  across multiplexed upstreams.
- Implement a "Soft Error" parser for code -32042 (URL Required) to
  relay interactive requirements as JSON-RPC data instead of
  transport failures, preserving stateful sessions.
- Refactor session setup to automatically negotiate and mirror
  protocol capabilities between downstream clients and upstream servers.
- Upgrade rmcp to 0.14.0, adopt decoupled structures (SEP-1319), and
  pin git rev ac4146e to resolve an enum variant shadowing issue
  (see modelcontextprotocol/rust-sdk#634).
- Enhance multiplexing logic to preserve and nest upstream _meta fields
  for end-to-end tracing and observability compliance.
- Replace legacy-rmcp (0.10.0) with modern 0.14.0 resumable-polling
  SSE implementations.
apexlnc added a commit to apexlnc/agentgateway that referenced this pull request Jan 30, 2026
- Add support for "Human-in-the-loop" parameter filling (SEP-1330) and
  handroll URL-mode support (SEP-1036) locally while awaiting
  upstream inclusion in modelcontextprotocol/rust-sdk#605.
- Implement full lifecycle management for background tasks (SEP-1686),
  allowing tools to enqueue long-running work and poll for results
  across multiplexed upstreams.
- Implement a "Soft Error" parser for code -32042 (URL Required) to
  relay interactive requirements as JSON-RPC data instead of
  transport failures, preserving stateful sessions.
- Refactor session setup to automatically negotiate and mirror
  protocol capabilities between downstream clients and upstream servers.
- Upgrade rmcp to 0.14.0, adopt decoupled structures (SEP-1319), and
  pin git rev ac4146e to resolve an enum variant shadowing issue
  (see modelcontextprotocol/rust-sdk#634).
- Enhance multiplexing logic to preserve and nest upstream _meta fields
  for end-to-end tracing and observability compliance.
- Replace legacy-rmcp (0.10.0) with modern 0.14.0 resumable-polling
  SSE implementations.
@alexhancock
Copy link
Collaborator

Sorry for the long delay getting to this. Do you mind rebasing?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T-config Configuration file changes T-core Core library changes T-dependencies Dependencies related changes T-examples Example code changes T-handler Handler implementation changes T-model Model/data structure changes T-service Service layer changes T-test Testing related changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants